#pragma once
#include<memory>
#include"Iterator.h"

namespace Abstract
{
    template<typename T>
    class Aggregate
    {
        // pure function: virutal wiht '= 0' appended 
        virtual std::shared_ptr<Iterator<T>> iterator() = 0;
    };
}

